00.Variants calling Q&A

GATK best practice pipeline

image.png

为什么要去除/标记重复序列

Tldr

需要去掉的是那些由于PCR扩增导致的重复序列,特点就是序列的起始和终止位点一致,这样的序列携带的信息是一致的,所以只保留一条即可。

BQSR

GATK的局部重比对

Tldr

GATK会对indels热点区域进行局部的重新比对,这样可以避免由于indel导致的大量的假阳性。

但如果后续就是用HaplotypeCaller进行分析,这一步可以省去,因为HaplotypeCaller就是基于局部重比对。

GenomicsDBImport

Tldr

GATK官方推荐的文件存储格式,据说性能更佳。

包含以下几个功能:

  1. Create a new GenomicsDB datastore from one or more GVCFs
  2. Joint-call samples in a GenomicsDB datastore
  3. Extract data from a GenomicsDB datastore
  4. Incrementally add new GVCFs to an existing GenomicsDB datastore
  5. Generate interval_list for an existing GenomicsDB datastore

VCF和GVCF的区别

image.png

为什么采用Joint calling的方式

  1. 数据共享:在joint calling过程中,信息在所有样本间共享。这意味着如果一个样本在某个位点的测序覆盖度较低,其他样本中相同位点的高置信度变异可以辅助调用,从而提高低频变异的检测能力。

  2. 区分能力:joint calling能够更清晰地区分纯合参照位点和缺失数据位点。这是因为在joint calling中,只要调用集中的任何一个个体在某个位点有变异证据,就会在该位点输出基因型调用。

  3. 减少假阳性:joint calling通过使用统计模型对大量数据进行变异过滤,提高了过滤假阳性的能力。这种过滤通常比单独分析每个样本更有效,因为它可以在整个样本集上应用统一的过滤标准。

  4. 灵活性和扩展性:GATK 3.0及以上版本引入了增量joint calling的概念,即先对每个样本单独调用变异(生成GVCF文件),然后对所有样本的GVCF文件进行joint genotyping。这种方法解决了传统joint calling在计算资源和时间上的不足,同时保持了joint calling的优势。

  5. 处理大规模样本集:joint calling通过GenomicsDBImport工具和GenotypeGVCFs工具,可以高效地处理大规模样本集,使得对大型队列的研究成为可能。

  6. 解决N+1问题:在传统的joint calling中,每当有新的样本加入时,需要重新对所有样本进行分析。而增量joint calling允许对新样本进行单独分析,然后将其添加到现有的GVCF数据集中,无需重新分析所有旧样本。

VQSR

HardFilter

GATK针对单倍体怎么call SNP

--ploidy 1 \  # 关键参数:设置为单倍体
--heterozygosity 0.001 \  # 降低杂合度预期